<?php
/**
* @Entity
* @Table(name="casos_testes")
*/
class CasosTestes
{
    public function __construct()
    {
        $this->data_criacao = new \DateTime( "now" );
        $this->data_execucao = new \DateTime( "now" );
        $this->scripts = new \Doctrine\Common\Collections\ArrayCollection();
        $this->logs = new \Doctrine\Common\Collections\ArrayCollection();
        $this->id_caso_status = STATUS_CASO_TESTE_NAO_EXECUTADO;
    }
    /**
    * @Id @Column(type="integer")
    * @GeneratedValue(strategy="AUTO")
    */
    public $id_caso_teste = 0;
    /**
    * @Column(type="string", columnDefinition="VARCHAR(150) NOT NULL")
    */
    public $nome = 0;
    /**
    * @Column(type="text")
    */
    public $descricao = '';
    /**
    * @Column(type="text")
    */
    public $pre_condicoes = '';
    /**
    * @Column(type="text")
    */
    public $pos_condicoes = '';
    /**
    * @Column(type="text")
    */
    public $observacoes = '';
    /**
    * @Column(type="datetime")
    */
    public $data_criacao = '';
    /**
    * @Column(type="datetime")
    */
    public $data_execucao = '';
    /**
    * @Column(type="integer", nullable=false)
    * @OneToMany(targetEntity="Projetos")
    * @JoinColumn(name="id_projeto", onDelete="RESTRICT")
    */
    public $id_projeto = 0;
    /**
    * @Column(type="integer", columnDefinition="INTEGER NOT NULL DEFAULT 4")
    * @OneToMany(targetEntity="CasosStatus")
    * @JoinColumn(name="id_caso_status", onDelete="RESTRICT")
    */
    public $id_caso_status = 0;
    /**                                                                         
     * @ManyToMany(targetEntity="ScriptsTestes")
     * @JoinTable(name="casos_scripts",                                  
     *      joinColumns={@JoinColumn(name="id_caso_teste", referencedColumnName="id_caso_teste")},
     *      inverseJoinColumns={@JoinColumn(name="id_script_teste", referencedColumnName="id_script_teste")}
     *      )
     * @OrderBy({"nome" = "ASC"})
    */
    private $scripts;//é um OneToMany Bidirecional, mas o doctrine só cria a tabela de ligação com ManyToMany (http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html)
    /**                                                                         
     * @ManyToMany(targetEntity="LogsTestes")
     * @JoinTable(name="casos_logs",                                  
     *      joinColumns={@JoinColumn(name="id_caso_teste", referencedColumnName="id_caso_teste")},
     *      inverseJoinColumns={@JoinColumn(name="id_log_teste", referencedColumnName="id_log_teste")}
     *      )
     * @OrderBy({"nome" = "ASC"})
    */
    private $logs;//é um OneToMany Bidirecional, mas o doctrine só cria a tabela de ligação com ManyToMany (http://docs.doctrine-project.org/en/2.0.x/reference/association-mapping.html)
    /**
    * @Column(type="integer", nullable=true)
    * @OneToMany(targetEntity="Usuarios")
    * @JoinColumn(name="id_testador", onDelete="RESTRICT")
    */
    public $id_testador = 0;
    
    public function get_id_caso_teste() {
        return $this->id_caso_teste;
    }

    public function get_nome() {
        return $this->nome;
    }

    public function get_descricao() {
        return $this->descricao;
    }

    public function get_pre_condicoes() {
        return $this->pre_condicoes;
    }

    public function get_pos_condicoes() {
        return $this->pos_condicoes;
    }

    public function get_observacoes() {
        return $this->observacoes;
    }

    public function get_data_criacao() {
        return $this->data_criacao;
    }

    public function get_id_projeto() {
        return $this->id_projeto;
    }

    public function get_id_caso_status() {
        return $this->id_caso_status;
    }

    public function set_id_caso_teste($id_caso_teste) {
        $this->id_caso_teste = $id_caso_teste;
    }

    public function set_nome($nome) {
        $this->nome = $nome;
    }

    public function set_descricao($descricao) {
        $this->descricao = $descricao;
    }

    public function set_pre_condicoes($pre_condicoes) {
        $this->pre_condicoes = $pre_condicoes;
    }

    public function set_pos_condicoes($pos_condicoes) {
        $this->pos_condicoes = $pos_condicoes;
    }

    public function set_observacoes($observacoes) {
        $this->observacoes = $observacoes;
    }

    public function set_data_criacao($data_criacao) {
        $this->data_criacao = $data_criacao;
    }
    
    public function get_data_execucao() {
        return $this->data_execucao;
    }

    public function set_data_execucao($data_execucao) {
        $this->data_execucao = $data_execucao;
    }

    public function set_id_projeto($id_projeto) {
        $this->id_projeto = $id_projeto;
    }

    public function set_id_caso_status($id_caso_status) {
        $this->id_caso_status = $id_caso_status;
    }
    
    public function get_scripts() {
        return $this->scripts;
    }

    public function addScript( ScriptsTestes $script ) {
        $this->scripts[] = $script;
    }
    
    public function get_logs() {
        return $this->logs;
    }

    public function addLog( LogsTestes $log ) {
        $this->logs[] = $log;
    }
    
    public function getId_testador() {
        return $this->id_testador;
    }

    public function setId_testador($id_testador) {
        $this->id_testador = $id_testador;
    }
}
/* End of file SuitesTestes.php */
/* Location: ./application/model/SuitesTestes.php */